import Vue from 'vue'
import App from './App'
import store from '@/store'

// 导入http实例  挂载到Vue原型上
import http from './utils/request'
// 导入提示方法 挂载到Vue原型上
import showMessage from './utils/message'

Vue.prototype.$http = http // $refs  $emit
Vue.prototype.$msg = showMessage

Vue.prototype.$formatP = (val) => {
  if (!val) return ''

  return Number(val).toFixed(2)
}

// uniapp是一个开发所有前端应用的框架
// 代码写一份 打包成小程序 网页 ios应用  安卓应用
// 代码是要在各个平台是运行的!!!    跨端(兼容性)

Vue.config.productionTip = false

App.mpType = 'app'

function isPromise(obj) {
  return (
    !!obj &&
    (typeof obj === 'object' || typeof obj === 'function') &&
    typeof obj.then === 'function'
  )
}

uni.addInterceptor({
  returnValue(res) {
    if (!isPromise(res)) {
      return res
    }
    return new Promise((resolve, reject) => {
      res.then((res) => {
        if (res[0]) {
          reject(res[0])
        } else {
          resolve(res[1])
        }
      })
    })
  },
})

const app = new Vue({
  ...App,
  store,
})
app.$mount()
